home *** CD-ROM | disk | FTP | other *** search
/ Aminet 35 / Aminet 35 (2000)(Schatztruhe)[!][Feb 2000].iso / Aminet / dev / gui / gui4cli.lha / Gui4Cli / Tools / Read.gc < prev   
Encoding:
Gui4CLI script  |  1999-11-24  |  5.5 KB  |  231 lines

  1. G4C
  2.  
  3. ; A File Reader.
  4. ; USE: GUILOAD guis:tools/read.gc FileName
  5.  
  6. ; ======================================================================
  7. ;               Globals & system events
  8. ; ======================================================================
  9.  
  10. WinBig 0 11 0 -13 "Loading..."    ; you may want to change the position
  11. WinType 11110001
  12. resinfo 8 640 256
  13. Varpath 'read.pop/read.srch'      ; use private vars & 2 other guis vars
  14.  
  15. xOnLoad filename
  16.     filepath = ''
  17.     gosub read.gc startup
  18.  
  19. xOnReload filename
  20.     filepath = ''
  21.     gosub read.gc startup
  22.  
  23. xROUTINE startup
  24.     guiopen read.gc
  25.     if $filename > ' '
  26.        ; OK file was passed
  27.     elseif $*FILENAME > ' '         ; Global *FILENAME is for compatibility
  28.     andifexists file $*FILENAME     ; with older versions.
  29.        filename  = $*FILENAME
  30.        delvar *FILENAME
  31.     else
  32.        gosub read.gc getfile
  33.     endif
  34.     gosub read.gc filechange
  35.     extract filename path filepath
  36.  
  37.  
  38. ;-------> Upon closing, we quit so as not to use-up memory
  39.  
  40. xOnClose
  41.     guiquit read.gc
  42.  
  43. ;------> on RMB we open our pop-up command window
  44.  
  45. xOnRMB 
  46.     guiopen Read.pop
  47.  
  48. ;------> on quitting we also quit our other 2 guis
  49.  
  50. xonquit
  51.     guiquit  read.srch
  52.     guiquit  read.pop
  53.  
  54. ; ======================================================================
  55. ;               The listview
  56. ; ======================================================================
  57.  
  58. xListview 0 0 0 0 "" var "" 20 MULTI
  59.     GadID  1
  60.     GadFont #mono 8 000
  61.     ; ATTR lvstyle 2031   ; uncomment this to get 3D letters
  62.     ATTR lvlinedist 2     ; This will set the distance between lines
  63.  
  64. ; ======================================================================
  65. ;               Routines
  66. ; ======================================================================
  67.  
  68. ;------> Routine to load & show file
  69.  
  70. xRoutine filechange filename            ; routine to load & show file
  71.     if $filename > ' '
  72.        guiscreen read.gc front
  73.        SetWinTitle read.gc "Loading...."
  74.        lvuse read.gc 1                      ; choose our display listview
  75.        LVChange $filename
  76.        SetWinTitle read.gc '$filename'
  77.     endif
  78.     stop
  79.  
  80. ;------------> open a requester and get a file
  81.  
  82. xroutine getfile
  83.     newname = ""
  84.     ReqFile -1 -1 250 200 "Choose file" LOAD newname $filepath
  85.     if $newname > ""
  86.        filename = $newname
  87.        extract filename path filepath
  88.        gosub read.gc filechange
  89.     endif
  90.  
  91.  
  92. ;######################################################################
  93.                 NEWFILE read.pop
  94. ;               Popup on RMB gui
  95. ;######################################################################
  96.  
  97. WINBIG 341 87 80 90 ""
  98. WinType 00001000
  99. resinfo 8 640 256
  100. winonmouse 30 7 
  101. varpath read.gc         ; use our main gui's vars
  102. box 0 0 0 0 out button
  103.  
  104. xOnRMB 
  105.     guiclose Read.pop
  106.  
  107. xOnInactive
  108.     guiclose Read.pop
  109.  
  110. xOnFail
  111.     ezreq "Error during operation" OK ""
  112.  
  113. xOnOpen
  114.     ; set the current tab size
  115.     tab = $$g4c.tab
  116.     update #this 10 $tab
  117.     changetab = 0
  118.  
  119. xOnClose
  120.     ; if tab size was changed, reload the file
  121.     if $changetab = 1
  122.         lvuse read.gc 1      ; reload listview
  123.         LVChange $filename
  124.         changetab = 0
  125.     endif
  126.  
  127. ;---------------> the Buttons
  128.  
  129. XBUTTON 0 0 80 15 Open
  130.     guiclose Read.pop
  131.     extract filename path read.gc/filepath
  132.     ; use new filereq gui
  133.     guiload guis:tools/filereq.gc read.gc filechange $read.gc/filepath 
  134.     ; gosub read.gc getfile
  135.  
  136. XBUTTON 0 15 80 15 Edit
  137.     guiclose Read.pop
  138.     ifexists gui cedbar.gc                  ; This is for CEd (long story..)
  139.        guiscreen cedbar.gc front
  140.        sendrexx rexx_ced 'open new'
  141.        sendrexx rexx_ced 'open $filename'
  142.        sendrexx rexx_ced 'expand view'
  143.     elseifexists variable *DEF.EDITOR
  144.        run '$*DEF.EDITOR $filename'         ; if called from a file manager
  145.     else
  146.        run 'c:ed $filename'                 ; use ed if nothing defined
  147.     endif
  148.  
  149. XBUTTON 0 30 80 15 Search
  150.     guiclose read.pop
  151.     guiopen  read.srch
  152.  
  153. XBUTTON 0 45 80 15 'Delete'
  154.     action delete $filename req
  155.  
  156. XBUTTON 0 60 80 15 Quit
  157.     changetab = 0            ; don't reload file
  158.     guiclose read.pop
  159.     guiquit  read.gc
  160.  
  161.     ; set tb size..
  162.  
  163. XHSLIDER 1 75 37 14 "" tab 0 10 8 "%ld"
  164.     gadid 10
  165.     set tab $tab
  166.     changetab = 1            ; flag to reload file on closing
  167.  
  168. XBUTTON 58 75 22 14 "T"
  169.     set tab $tab
  170.     guiclose read.pop
  171.     lvuse read.gc 1      ; reload listview
  172.     LVChange $filename
  173.     changedtab = 0
  174.  
  175.  
  176. ;######################################################################
  177.                 NEWFILE read.srch
  178. ;               Gui to Search the file
  179. ;######################################################################
  180.  
  181.  
  182. WINBIG -1 -1 300 32 'Enter Search string :'
  183. wintype 11110001
  184. resinfo 8 640 256
  185.  
  186. xonopen         ; reset variables on opening
  187.     mode = CI
  188.     flag = 0
  189.  
  190. xTextIn  0 0 0 15 '' str '' 128
  191.     gosub read.srch search
  192.  
  193. xCycler  0 17 150 14 '' mode    ; choose case sensitive/insen..
  194.     cstr 'Ignore case' CI
  195.     cstr 'Same case'   CS
  196.  
  197.  
  198. xButton 150 17 100 14 'Top'     ; go to top of lv
  199.     flag = 0                        
  200.     lvgo #0
  201.     update read.gc 1 0
  202.     setwintitle read.srch 'Enter search string :'
  203.  
  204.  
  205. xButton  250 17 50 14 >>
  206.     gosub read.srch search
  207.  
  208.  
  209. xroutine search
  210.     if $str = ''            ; no string entered 
  211.        stop
  212.     endif
  213.     lvuse read.gc 1         ; use the reader's listview
  214.     if $flag = 0            ; flag=0 means this is the first time
  215.        flag = 1
  216.        lvsearch $str $mode first    ; Keywords such as mode (CI or CS), do
  217.                                     ; not get translated, but in lvsearch
  218.                                     ; it's an exception, so we can say $mode
  219.     else
  220.        lvsearch $str $mode next
  221.     endif
  222.     if $$lv.line > ''               ; update to line found
  223.        update read.gc 1 $$lv.line
  224.        setwintitle read.srch 'Line $$lv.line'
  225.     else
  226.        lvgo #0                      ; or else go top again
  227.        flag = 0
  228.        setwintitle read.srch 'Search Finished'
  229.     endif
  230.  
  231.